لطفا از تمام مطالب دیدن فرمایید.
منوهای فرعی:
منوهای فرعی منوهایی هستند که با کلیک راست کاربر روی یک کنترل و یا روی یک فرم نمایش داده می شوند. به وسیله این منوها کاربر می تواند به سرعت به کارهای عمومی که در قسمتی از برنامه به شدت به آنها نیاز پیدا می کند دسترسی داشته باشد. برای مثال منوی فرعی که در برنامه قبلی به صورت اتوماتیک نمایش داده شد این امکان را به کاربر می دهد که به راحتی و به سرعت، به گزینه های پر کاربرد منوی Edit برای ویرایش متن درون یک TextBox، دسترسی داشته باشد.
منوهای فرعی می تواند بر حسب کنترلی که کاربر انتخاب کرده است تغییر کنند. برای مثال همانطور که در دیگر برنامه های ویندوزی مشاهده کرده اید، اگر در فرم یک برنامه یک کنترل TextBox را انتخاب کرده و روی آن کلیک راست کنید منوی فرعی نمایش داده می شود که با منوی فرعی مربوط به خود فرم تفاوت دارد.
ویندوز به صورت پیش فرض یک منوی فرعی برای کنترلهای TextBox نمایش می دهد و تا کاربر بتواند به وسیله آن کارهای عمومی مانند Cut، Copy و یا Paste را انجام دهد. البته در صورت لزوم می توانید این منو را با هر منوی دیگری جایگزین کنید. برای مثال تصور کنید کاربر می تواند در برنامه شما متن داخل TextBox ها را کپی کند، اما نمی خواهید اجازه دهید که این متن کات شود. بنابراین می توانید منوی جدیدی ایجاد کنید و از آن به عنوان منوی فرعی در کنترل های TextBox استفاده کنید. سپس در این منو گزینه Cut را غیرفعال کنید.
برای ایجاد منوهای فرعی در ویژوال استودیو می توانید از کنترل ContextMenuStrip استفاده کنید. عملکرد این کنترل و نحوه ایجاد منو در آن نیز همانند کنترل MenuStrip است. تفاوت این کنترل با کنترل MenuStrip در آن است که در کنترل ContextMenuStrip فقط می توانید یک منو در بالاترین سطح داشته باشید و دیگر منوها باید به عنوان زیرمجموعه آن واقع شوند، در صورتی که در کنترل MenuStrip می توانید به تعداد دلخواه منو در بالاترین سطح داشته باشید.
بیشتر کنترلهایی که در جعبه ابزار وجود دارند دارای خاصیتی به نام ContextMenuStrip هستند که می توانند شیئ ای را از این نوع قبول کنند. با تنظیم این خاصیت برای هر یک از کنترل ها، هنگامی که کاربر روی آن کنترل کلیک راست کند منوی فرعی که به آن نسبت داده شده است نمایش داده می شود.
بعضی از کنترل ها همانند ComboBox و یا ListBox دارای یک منوی فرعی پیش فرض نیستند. دلیل این مورد هم به این علت است که این کنترل ها بیش از یک آیتم را در خود نگه داری می کنند و مانند کنترل TextBox فقط یک آیتم درون آنها وجود ندارد. البته این کنترل ها نیز دارای خاصیت ContextMenuStrip هستند که به وسیله آن می توانید یک منوی فرعی را در برنامه برای آنها ایجاد کنید.
ایجاد منوهای فرعی:
حال که با مفهوم منوهای فرعی آشنا شدید، به بررسی آنها در کد و چگونگی استفاده از آن در برنامه های ویژوال C# می پردازیم. در بخش امتحان کنید بعد، برنامه ی قسمت قبلی را با اضافه کردن یک منوی فرعی مخصوص برای کنترلهای TextBox کامل می کنیم. در این برنامه یک منوی فرعی ایجاد کرده و برای هر دو کنترل TextBox از آن استفاده خواهیم کرد. البته می توانیم دو منوی فرعی ایجاد کرده و در هر یک منوهای جداگانه قرار دهیم که کارهای متفاوتی را انجام دهند، سپس هر یک از آنها را به یکی از TextBox ها نسبت دهیم، ولی در این برنامه نیازی به این کار نیست.
امتحان کنید: ایجاد منوهای فرعی
به قسمت طراحی فرم بروید و با استفاده از جعبه ابزار، یک کنترل ContextMenuStrip در فرم قرار دهید. این کنترل نیز همانند کنترل MenuStrip به قسمت پایین بخش طراحی فرم اضافه می شود.
در پنجره Properties مربوط به این کنترل، روی دکمه … مقابل خاصیت Items آن کلیک کنید تا پنجره Items Collection Editor نمایش داده شود.
در پنجره Items Collection Editor روی دکمه ی Add کلیک کنید تا یک منو به لیست اضافه شود. خاصیت Name این منو را برابر با contextUndoToolStripMenuItem و خاصیت Text آن را نیز برابر با Undo قرار دهید. سپس روی دکمه … در مقابل خاصیت Image کلیک کنید واز پنجره Select Resource آیکونی را برای این منو انتخاب کنید.
حال باید یک خط جداکننده بین گزینه Undo و دیگر گزینه ها قرار دهید. برای این کار از لیست کنار دکمه َAdd، گزینه Separator را انتخاب کرده و بر روی دکمه Add کلیک کنید تا یک جداکننده در این قسمت واقع شود.
مجددا از لیست سمت راست دکمه Add گزینه MenuItem را انتخاب کرده و سپس روی دکمه Add کلیک کنید تا گزینه دیگری به این منو اضافه شود. خاصیت Name این گزینه را برابر با contextCutToolStripMenuItem و خاصیت Text آن را Cut قرار دهید. سپس با تنظیم خاصیت Image آن به وسیله پنجره Select Resource آیکونی را برای این منو انتخاب کنید.
در پنجره Items Collection Editor گزینه دیگری را به منو اضافه کرده، خاصیت Name آن را برابر با contextCopyToolStripMenuItem و خاصیت Text آن را برابر با Copy قرار دهید. سپس آیکونی را برای خاصیت Image آن در نظر بگیرید تا در منو نمایش داده شود.
مجددا روی دکمه Add کلیک کنید تا گزینه دیگری به منو اضافه شود. خاصیت Name این گزینه را برابر با contextPasteToolStripMenuItem و خاصیت Text آن را برابر با Paste قرار دهید. همچنین آیکونی را برای آن در قسمت Image مشخص کنید.
حال باید جداکننده دیگری بین گزینه های این قسمت و قسمت بعدی منو قرار دهیم. بنابراین از لیست سمت راست دکمه Add گزینه Separator را انتخاب کرده و روی دکمه فرمان Add کلیک کنید تا به لیست منوها اضافه شود. به دلیل اینکه از این منو در کد استفاده نمی کنیم، نیازی نیست که خاصیتهای آن را تغییر دهید و می توانید خاصیتهای پیش فرض آن را قبول کنید.
مجددا از لیست سمت راست دکمه Add، گزینه MenuItem را انتخاب کرده و روی دکمه Add کلیک کنید تا گزینه دیگری به لیست Members اضافه شود. خاصیت Name گزینه جدید را برابر با contextSelectAllToolStripMenuItem و خاصیت Text آن را برابر به Select All تغییر دهید. برای این گزینه نیازی نیست که آیکونی را تعیین کنید، بنابراین می توانید در پنجره Items Collection Editor روی دکمه OK کلیک کنید تا بسته شود.
هنگامی که به فرم برنامه برگردید مشاهده می کنید که منوی فرعی که ایجاد کرده بودید در بالای فرم نمایش داده می شود، برای حذف آن در قسمتی از فرم کلیک کنید . برای نمایش مجدد آن می توانید کنترل مربوط به آن را از پایین قسمت طراحی فرم انتخاب کنید.
کنترل TextBox اول را در فرم انتخاب کرده و در قسمت Properties، خاصیت ContextMenuStrip آن را برابر با contextMenuStrip1 ( یا هر نام دیگری که به کنترل مربوط به منوی فرعی نسبت داده اید ) قرار دهید. این عمل را برای کنترل TextBox دوم نیز تکرار کنید.
در این مرحله می توانید ظاهر منوی فرعی را که ایجاد کرده اید بررسی کنید. البته تاکنون هیچ کدی به این کنترل اضافه نکرده اید، پس هیچ یک از کنترلهای آن کار نمی کنند. برنامه را اجرا کنید و بعد از نمایش داده شدن فرم، روی کنترل TextBox اول کلیک راست کنید.این بار به جای منوی فرعی پیش فرض ویندوز، منوی فرعی که ساخته بودید همانند شکل زیر نمایش داده می شود. این کار را برای TextBox دوم نیز تکرار کنید. همانطور که مشاهده می کنید، منوی فرعی یکسانی برای هردوی آنها نمایش داده می شود.
از برنامه خارج شوید و به قسمت طراحی فرم برگردید. در این قسمت می خواهیم کد مربوط به گزینه های منوی فرعی را وارد کنیم. از پایین قسمت طراحی فرم، کنترل contextMenuStrip را انتخاب کرده تا منوی فرعی برنامه در بالای فرم نمایش داده شود. در این منو، روی گزینه Undo کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود، سپس کد زیر را در این متد وارد کنید:
به قسمت طراحی فرم برگردید و در منوی فرعی روی گزینه Cut دوبار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود. سپس کد زیر را در این متد وارد کنید:
......................................
موضوعات مرتبط: منوهای فرعی: ، ،
برچسبها:
صفحه قبل 1 صفحه بعد
قالب (Theme)
سبکهای نمایش (styles)
فهرستهای سفارشی (Customized Lists)
فهرستها (Lists)
دکمهها
صفحهبندی (layout)
واحدهای اندازهگیری
اشکال زدایی (debug) برنامه
درک امنیت و اجازه ها (permission)
ساختن و استفاده از منابع (Resources)
استفاده از مفاهیم ضمنی (implicit intents)
استفاده از مفاهیم آشکار (explicit intents)
ساختن و مدیریت فعالیت ها Activities یک برگرفته شده از AndroidCode.ir
کار کردن با AndroidManifest.xml
ایجاد پروژه و درک ساختار آن
نمای کلی از توسعه اندروید
آماده کردن دستگاه اندروید (گوشی) برای توسعه
مراحل نصب «ابزار توسعه اندروید» ADT در ایکلیپس
مراحل نصب ایکلیپس (Eclipse) روی ویندوز
مراحل نصب ایکلیپس (Eclipse) روی مک
سبکهای نمایش (styles)
فهرستهای سفارشی (Customized Lists)
فهرستها (Lists)
دکمهها
صفحهبندی (layout)
واحدهای اندازهگیری
اشکال زدایی (debug) برنامه
درک امنیت و اجازه ها (permission)
ساختن و استفاده از منابع (Resources)
استفاده از مفاهیم ضمنی (implicit intents)
استفاده از مفاهیم آشکار (explicit intents)
ساختن و مدیریت فعالیت ها Activities یک برگرفته شده از AndroidCode.ir
کار کردن با AndroidManifest.xml
ایجاد پروژه و درک ساختار آن
نمای کلی از توسعه اندروید
آماده کردن دستگاه اندروید (گوشی) برای توسعه
مراحل نصب «ابزار توسعه اندروید» ADT در ایکلیپس
مراحل نصب ایکلیپس (Eclipse) روی ویندوز
مراحل نصب ایکلیپس (Eclipse) روی مک
لطفا از دیگر مطالب نیز دیدن فرمایید